Day 2 사칙연산, 조건문, 배열
Day2 2단계 20231019
3. 분수의 덧셈
- 재귀호출 사용(메서드(Methods)#재귀호출)
- 유클리드 호제법 : 2개의 자연수의 최대 공약수를 구하는 알고리즘
- a > b에서 a%b = r 이라면, a와 b의 최대 공약수는 b와 r의 최대 공약수와 같다.
- b%r = r2일 때, b와 r의 최대 공약수는 r과 r2의 최대 공약수이고, 이를 나머지가 0이 될 때까지 반복한다.
- 나머지가 0이 될 때의 나눈 수가 최대 공약수가 된다.
public int getGCD(int num1, int num2) {
if (num1 % num2 == 0) {
return num2;
}
return getGCD(num2, num1 % num2);
}
class Solution {
public int[] solution(int numer1, int denom1, int numer2, int denom2) {
int newNumer = numer1*denom2 + numer2*denom1;
int newDenom = denom1*denom2;
int[] answer = {newNumer, newDenom};
int compare = newNumer < newDenom ? newNumer : newDenom;
for (int i = 1; i <= compare; i++) {
if (newNumer % i == 0 && newDenom % i == 0) {
answer[0] = newNumer/i;
answer[1] = newDenom/i;
}
}
return answer;
}
}
4. 배열 두 배 만들기
- 스트림이 뭘까
- 단순 파일 입출력만 관리하는게 아니라 기능이 더 있음
- https://futurecreator.github.io/2018/08/26/java-8-streams/ 참고
- https://hbase.tistory.com/171 참고
class Solution {
public int[] solution(int[] numbers) {
int[] answer = new int[numbers.length];
for (int i = 0; i < numbers.length; i++) {
answer[i] = numbers[i]*2;
}
return answer;
}
}